맨위로가기

AWS 람다

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

AWS 람다는 아마존 웹 서비스(AWS)에서 제공하는 서버리스 컴퓨팅 서비스로, 사용자가 코드를 업로드하면 자동으로 실행 환경을 구성하고 관리하여 프로그램을 실행할 수 있게 해준다. AWS 람다는 이벤트에 의해 트리거되어 실행되며, 자동 확장 기능을 통해 이벤트 빈도 증가에 따른 처리 속도 저하를 방지한다. 자바, Go, Node.js, 파이썬 등 다양한 프로그래밍 언어를 지원하며, 2019년에는 함수를 초기화 상태로 유지하여 빠른 응답을 제공하는 "프로비전된 동시성" 기능을 발표했다. 또한, 람다 함수 URL을 통해 인증된 사용자와 인증되지 않은 사용자 모두 접근 가능한 URL을 제공하며, Lambda@Edge 서비스를 통해 CDN 상에서 프로그램을 실행하여 엣지 컴퓨팅을 지원한다. 요금은 종량 과금제로, 실행 횟수, 실행 시간 및 메모리 사용량에 따라 부과된다.

더 읽어볼만한 페이지

  • 서버리스 컴퓨팅 - 헤로쿠
    헤로쿠는 James Lindenbaum, Adam Wiggins, Orion Henry에 의해 개발되어 세일즈포스닷컴에 인수된 클라우드 플랫폼 서비스이며, 다양한 프로그래밍 언어와 데이터베이스를 지원하고 여러 서비스를 제공하며, 보안 침해와 무료 플랜 중단, 플랫폼 재구축을 겪었다.
  • 서버리스 컴퓨팅 - 구글 앱 엔진
    구글 앱 엔진은 개발자가 웹 애플리케이션을 개발하고 호스팅하도록 지원하는 구글의 클라우드 컴퓨팅 플랫폼으로, 다양한 언어와 프레임워크를 지원하며 자동 확장, 데이터 저장소, API 제공 등의 기능을 제공하지만, 파일 시스템 접근 제한과 특정 환경 종속의 단점도 존재한다.
  • 아마존 웹 서비스 - 아마존 알렉사
    아마존 알렉사는 아마존이 개발한 인공지능 음성 비서로, 스마트홈 기기 제어, 음악 스트리밍, 정보 검색 등의 기능을 제공하지만 개인 정보 보호 논란도 있으며, 아마존은 기능 확장과 수익성 개선을 위해 노력 중이다.
  • 아마존 웹 서비스 - 아마존 레드시프트
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 브루클린 미술관
    브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 광주지방기상청
    광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
AWS 람다 - [IT 관련 정보]에 관한 문서
개요
유형서버리스 컴퓨팅 플랫폼
개발사Amazon.com
최초 출시일2014년 11월 13일
운영 체제크로스 플랫폼
사용 언어영어
웹사이트https://aws.amazon.com/jp/lambda/

2. 특징

AWS 람다는 프로그램을 등록하기만 하면 실행할 수 있다는 것이 특징이며, 동일한 클라우드 컴퓨팅 서비스인 아마존 EC2와 비교하면 사용이 용이하다. 아마존 EC2에서는 가상화된 서버가 제공되므로, 거기에 운영 체제나 애플리케이션을 설치하는 등의 환경 구축 작업이 필요하며, 이러한 관리도 해야 한다. AWS 람다는 용도를 프로그램 실행에만 국한함으로써, 이용자가 이러한 환경을 구축하는 수고를 덜어준다.

등록된 프로그램은 "Lambda 함수"라고 불리며, 어떤 이벤트가 트리거가 되어 실행된다. AWS 람다가 등장하기 전에는 이벤트를 트리거로 하는 프로그램을 실행하려면, 아마존 EC2를 사용하여 "이벤트를 대기하는" 상시 실행 애플리케이션이 필요했다. AWS 람다는 이벤트가 트리거가 되어 프로그램이 실행되므로, 이벤트가 발생하지 않는 상태에서는 프로그램 실행이 불필요하다. 이것은 바꿔 말하면 "이벤트 대기를 AWS 람다가 대신하고 있다"라고 할 수 있다. 아마존 API 게이트웨이를 경유하는 HTTP 요청이나, 아마존 S3나 아마존 다이나모DB와 같은 AWS의 각종 서비스에서의 변경 감지 등이 프로그램 실행 트리거가 된다.

프로그램 실행에 필요한 처리 능력은 프로그램 실행 시 자동으로 할당되므로, 이벤트 빈도가 증가해도 처리 속도를 유지할 수 있다. 비디오 게임에서는, 연간 몇 차례의 이벤트로 일시적으로 큰 부하가 걸리는 경우가 있을 때 AWS 람다를 사용하여, 그 이벤트만을 위해 서버를 증강하는 것을 피하기 위해 응용되고 있다고 한다.

아마존 클라우드프론트에서 Lambda를 실행하는 "Lambda@Edge"라는 서비스도 있다. 이것을 사용하면 전 세계 각지에 설치되어 있는 클라우드프론트의 콘텐츠 전송 네트워크 (CDN) 상에서 프로그램이 실행되므로 (엣지 컴퓨팅), 더욱 사용자에 가까운 곳에서 프로그램이 작동하여 부하 분산·응답 향상을 기대할 수 있다.

지원하는 프로그래밍 언어는 자바, Go, PowerShell, Node.js, C#, 파이썬, 루비 등 다양하다. 서드 파티의 것을 포함하여 소프트웨어 프레임워크, SDK, 라이브러리 등을 사용할 수 있다고 하며, 이것들을 "Lambda Layer"라는 패키지로 묶어 여러 Lambda 함수에서 공유할 수 있다.

2019년, AWS 연례 클라우드 컴퓨팅 컨퍼런스(AWS re:Invent)에서 AWS 람다 팀은 "프로비전된 동시성"을 발표했다. 이 기능은 "함수를 초기화 상태로 유지하여 두 자릿수 밀리초 이내에 응답할 수 있도록 준비"한다.[6] 람다 팀은 프로비전된 동시성을 "웹 및 모바일 백엔드, 지연 시간에 민감한 마이크로서비스, 또는 동기식 API와 같은 대화형 서비스를 구현하는 데 이상적"이라고 설명했다.[7]

람다 함수 URL은 람다에 고유하고 영구적인 URL을 제공하며, 이는 인증된 사용자와 인증되지 않은 사용자 모두 접근할 수 있다.[8]

2. 1. 서버 관리 불필요

AWS 람다는 프로그램을 등록하기만 하면 실행할 수 있다는 것이 특징이며, 동일한 클라우드 컴퓨팅 서비스인 아마존 EC2와 비교하면 사용이 용이하다.[6][7] 아마존 EC2에서는 가상화된 서버가 제공되므로, 거기에 운영 체제나 애플리케이션을 설치하는 등의 환경 구축 작업이 필요하며, 이러한 관리도 해야 한다. AWS 람다는 용도를 프로그램 실행에만 국한함으로써, 이용자가 이러한 환경을 구축하는 수고를 덜어준다.

등록된 프로그램은 "Lambda 함수"라고 불리며, 어떤 이벤트가 트리거가 되어 실행된다. AWS 람다가 등장하기 전에는 이벤트를 트리거로 하는 프로그램을 실행하려면, 아마존 EC2를 사용하여 "이벤트를 대기하는" 상시 실행 애플리케이션이 필요했다. AWS 람다는 이벤트가 트리거가 되어 프로그램이 실행되므로, 이벤트가 발생하지 않는 상태에서는 프로그램 실행이 불필요하다. 이것은 바꿔 말하면 "이벤트 대기를 AWS 람다가 대신하고 있다"라고 할 수 있다. 아마존 API 게이트웨이를 경유하는 HTTP 요청이나, 아마존 S3나 아마존 다이나모DB와 같은 AWS의 각종 서비스에서의 변경 감지 등이 프로그램 실행 트리거가 된다.

프로그램 실행에 필요한 처리 능력은 프로그램 실행 시 자동으로 할당되므로, 이벤트 빈도가 증가해도 처리 속도를 유지할 수 있다. 비디오 게임에서는, 연간 몇 차례의 이벤트로 일시적으로 큰 부하가 걸리는 경우가 있을 때 AWS 람다를 사용하여, 그 이벤트만을 위해 서버를 증강하는 것을 피하기 위해 응용되고 있다고 한다.

2019년 AWS 연례 클라우드 컴퓨팅 컨퍼런스(AWS re:Invent)에서 AWS 람다 팀은 "프로비전된 동시성"을 발표했다. 이 기능은 "함수를 초기화 상태로 유지하여 두 자릿수 밀리초 이내에 응답할 수 있도록 준비"한다.[6] 람다 팀은 프로비전된 동시성을 "웹 및 모바일 백엔드, 지연 시간에 민감한 마이크로서비스, 또는 동기식 API와 같은 대화형 서비스를 구현하는 데 이상적"이라고 설명했다.[7]

2. 2. 이벤트 기반 실행

AWS 람다는 프로그램을 등록하기만 하면 실행할 수 있어, 아마존 EC2와 비교하여 사용이 용이하다. 아마존 EC2는 가상화된 서버를 제공하므로 운영 체제나 애플리케이션 설치 등 환경 구축 및 관리가 필요하지만, AWS 람다는 이러한 과정을 생략할 수 있다.[6]

등록된 프로그램은 "Lambda 함수"라고 불리며, 특정 이벤트에 의해 트리거되어 실행된다. AWS 람다 이전에는 아마존 EC2를 사용하여 이벤트를 대기하는 상시 실행 애플리케이션이 필요했지만, AWS 람다는 이벤트 발생 시에만 프로그램이 실행되므로 불필요한 프로그램 실행을 줄일 수 있다. 이는 "이벤트 대기를 AWS 람다가 대신하고 있다"라고 할 수 있다.[7] 아마존 API 게이트웨이를 경유하는 HTTP 요청이나, 아마존 S3, 아마존 다이나모DB 등 AWS 서비스 변경 감지 등이 트리거가 될 수 있다.

프로그램 실행에 필요한 처리 능력은 자동 할당되므로, 이벤트 빈도가 증가해도 처리 속도를 유지할 수 있다. 비디오 게임에서 일시적인 부하가 발생하는 이벤트에 대응하기 위해 AWS 람다를 활용하여 서버 증강을 피하는 사례가 있다.[8]

아마존 클라우드프론트에서 Lambda를 실행하는 "Lambda@Edge" 서비스를 통해 전 세계 콘텐츠 전송 네트워크 (CDN) 상에서 프로그램을 실행하여 (엣지 컴퓨팅) 부하 분산 및 응답 향상을 기대할 수 있다.

지원하는 프로그래밍 언어는 자바, Go, PowerShell, Node.js, C#, 파이썬, 루비 등 다양하며, 서드 파티 소프트웨어 프레임워크, SDK, 라이브러리 등을 "Lambda Layer" 패키지로 묶어 여러 Lambda 함수에서 공유할 수 있다.

2019년 AWS re:Invent에서 발표된 "프로비전된 동시성" 기능은 함수를 초기화 상태로 유지하여 빠른 응답을 가능하게 한다. 이는 웹 및 모바일 백엔드, 지연 시간에 민감한 마이크로서비스, 동기식 API 등에 유용하다.

람다 함수 URL은 람다에 고유하고 영구적인 URL을 제공하며, 인증된 사용자와 인증되지 않은 사용자 모두 접근할 수 있다.

2. 3. 자동 확장

AWS 람다는 프로그램을 등록하기만 하면 실행할 수 있어, 가상화된 서버를 제공하여 사용자가 직접 운영 체제나 애플리케이션을 설치하고 관리해야 하는 아마존 EC2와 비교하여 사용이 용이하다. AWS 람다는 프로그램 실행에만 용도를 국한하여 이용자가 환경을 구축하는 수고를 덜어준다.

등록된 프로그램인 "Lambda 함수"는 특정 이벤트에 의해 트리거되어 실행된다. AWS 람다 이전에는 아마존 EC2를 사용하여 이벤트를 대기하는 상시 실행 애플리케이션이 필요했지만, AWS 람다는 이벤트 발생 시에만 프로그램이 실행되므로 불필요한 프로그램 실행을 줄일 수 있다. 아마존 API 게이트웨이를 경유하는 HTTP 요청이나, 아마존 S3, 아마존 다이나모DB와 같은 AWS 서비스에서의 변경 감지 등이 트리거가 된다.

프로그램 실행에 필요한 처리 능력은 프로그램 실행 시 자동으로 할당되어 이벤트 빈도가 증가해도 처리 속도를 유지할 수 있다. 비디오 게임에서 일시적인 부하가 발생하는 경우 AWS 람다를 사용하여 서버 증강 없이 이벤트를 처리하는 데 응용되기도 한다.

2019년 AWS re:Invent에서 발표된 "프로비전된 동시성" 기능은 함수를 초기화 상태로 유지하여 빠른 응답을 제공한다. 이는 웹 및 모바일 백엔드, 지연 시간에 민감한 마이크로서비스, 동기식 API와 같은 대화형 서비스에 이상적이다.[6][7] 람다 함수 URL은 람다에 고유하고 영구적인 URL을 제공하며, 인증된 사용자와 인증되지 않은 사용자 모두 접근할 수 있다.[8]

아마존 클라우드프론트에서 Lambda를 실행하는 "Lambda@Edge" 서비스를 통해 전 세계에 설치된 클라우드프론트의 콘텐츠 전송 네트워크 (CDN) 상에서 프로그램을 실행하여 (엣지 컴퓨팅) 부하 분산 및 응답 향상을 기대할 수 있다.

지원하는 프로그래밍 언어는 자바, Go, PowerShell, Node.js, C#, 파이썬, 루비 등 다양하며, 서드 파티를 포함한 소프트웨어 프레임워크, SDK, 라이브러리 등을 "Lambda Layer" 패키지로 묶어 여러 Lambda 함수에서 공유할 수 있다.

2. 4. 다양한 프로그래밍 언어 지원

AWS 람다는 자바, Go, PowerShell, Node.js, C#, 파이썬, 루비 등 다양한 프로그래밍 언어를 지원한다. 서드 파티의 것을 포함하여 소프트웨어 프레임워크, SDK, 라이브러리 등을 사용할 수 있으며, 이것들을 "Lambda Layer"라는 패키지로 묶어 여러 Lambda 함수에서 공유할 수 있다.

AWS 람다는 프로그램을 등록하기만 하면 실행할 수 있다는 것이 특징이며, 동일한 클라우드 컴퓨팅 서비스인 아마존 EC2와 비교하면 사용이 용이하다. 아마존 EC2에서는 가상화된 서버가 제공되므로, 거기에 운영 체제나 애플리케이션을 설치하는 등의 환경 구축 작업이 필요하며, 이러한 관리도 해야 한다. AWS 람다는 용도를 프로그램 실행에만 국한함으로써, 이용자가 이러한 환경을 구축하는 수고를 덜어준다.

등록된 프로그램은 "Lambda 함수"라고 불리며, 어떤 이벤트가 트리거가 되어 실행된다. AWS 람다가 등장하기 전에는 이벤트를 트리거로 하는 프로그램을 실행하려면, 아마존 EC2를 사용하여 "이벤트를 대기하는" 상시 실행 애플리케이션이 필요했다. AWS 람다는 이벤트가 트리거가 되어 프로그램이 실행되므로, 이벤트가 발생하지 않는 상태에서는 프로그램 실행이 불필요하다. 이것은 바꿔 말하면 "이벤트 대기를 AWS 람다가 대신하고 있다"라고 할 수 있다. 아마존 API 게이트웨이를 경유하는 HTTP 요청이나, 아마존 S3나 아마존 다이나모DB와 같은 AWS의 각종 서비스에서의 변경 감지 등이 프로그램 실행 트리거가 된다.

프로그램 실행에 필요한 처리 능력은 프로그램 실행 시 자동으로 할당되므로, 이벤트 빈도가 증가해도 처리 속도를 유지할 수 있다. 비디오 게임에서는, 연간 몇 차례의 이벤트로 일시적으로 큰 부하가 걸리는 경우가 있을 때 AWS 람다를 사용하여, 그 이벤트만을 위해 서버를 증강하는 것을 피하기 위해 응용되고 있다고 한다.

아마존 클라우드프론트에서 Lambda를 실행하는 "Lambda@Edge"라는 서비스도 있다. 이것을 사용하면 전 세계 각지에 설치되어 있는 클라우드프론트의 콘텐츠 전송 네트워크 (CDN) 상에서 프로그램이 실행되므로 (엣지 컴퓨팅), 더욱 사용자에 가까운 곳에서 프로그램이 작동하여 부하 분산·응답 향상을 기대할 수 있다.

2019년, AWS 연례 클라우드 컴퓨팅 컨퍼런스(AWS re:Invent)에서 AWS 람다 팀은 "프로비전된 동시성"을 발표했다.[6] 이 기능은 "함수를 초기화 상태로 유지하여 두 자릿수 밀리초 이내에 응답할 수 있도록 준비"한다.[6] 람다 팀은 프로비전된 동시성을 "웹 및 모바일 백엔드, 지연 시간에 민감한 마이크로서비스, 또는 동기식 API와 같은 대화형 서비스를 구현하는 데 이상적"이라고 설명했다.[7]

람다 함수 URL은 람다에 고유하고 영구적인 URL을 제공하며, 이는 인증된 사용자와 인증되지 않은 사용자 모두 접근할 수 있다.[8]

2. 5. Lambda Layer

AWS 람다 레이어는 AWS 람다 함수에 추가할 수 있는 라이브러리, 프레임워크 또는 사용자 지정 코드를 포함하는 ZIP 아카이브이다.[9] 2024년 12월 현재, AWS 람다 레이어는 다음과 같은 상당한 제약 사항을 가지고 있다.[10][11]

  • 의미적 버전 관리 지원 없음.
  • 주요 보안 검사 도구와의 비호환성.
  • 람다의 250MB 크기 제한 기여.
  • 로컬 테스트 방해.
  • 트리 쉐이킹(tree-shaking) 최적화 없음.


AWS 서버리스 히어로 얀 추이(Yan Cui)는 이러한 제약으로 인해 패키지 관리자(예: NPM)를 사용한 대체 코드 공유 전략을 권장한다.[14]

지원하는 프로그래밍 언어는 자바, Go, PowerShell, Node.js, C#, 파이썬, 루비 등 다양하다. 서드 파티의 것을 포함하여 소프트웨어 프레임워크, SDK, 라이브러리 등을 사용할 수 있으며, 이것들을 "Lambda Layer"라는 패키지로 묶어 여러 Lambda 함수에서 공유할 수 있다.

2. 6. Lambda@Edge

아마존 클라우드프론트에서 Lambda를 실행하는 "Lambda@Edge"라는 서비스도 있다. 이것을 사용하면 전 세계 각지에 설치되어 있는 클라우드프론트의 콘텐츠 전송 네트워크 (CDN) 상에서 프로그램이 실행되므로 (엣지 컴퓨팅), 더욱 사용자에 가까운 곳에서 프로그램이 작동하여 부하 분산·응답 향상을 기대할 수 있다.

3. 기술 사양

2024년 기준으로 각 AWS 람다 인스턴스는 Firecracker 마이크로 VM으로 구동되는 경량의 격리된 환경 내에서 실행된다.[2][3][4] 이러한 마이크로 VM은 AWS에서 개발한 맞춤형 리눅스 배포판인 Amazon Linux (Amazon Linux AMI 또는 Amazon Linux 2)를 기반으로 하는 런타임 환경으로 초기화된다. Firecracker는 하드웨어 가상화를 기반으로 하는 격리를 제공하여 최소한의 오버헤드로 거의 베어 메탈 수준의 성능을 달성하는 것을 목표로 한다. AWS는 기존 가상 머신과 달리 이러한 마이크로 VM이 수 밀리초 내에 시작되어 최소한의 메모리 공간으로 빠르고 안전한 함수 실행을 가능하게 한다고 주장한다. Amazon Linux AMI는 클라우드 네이티브 및 서버리스 워크로드를 위해 특별히 최적화되어 가볍고 안전하며 성능이 뛰어난 런타임 환경을 제공하는 것을 목표로 한다.[2][3][4]

2024년 12월 기준으로 AWS 람다는 Node.js, Python, Java, Go, .NET, Ruby 및 사용자 지정 런타임을 지원한다.[5]

3. 1. Firecracker 마이크로 VM

2024년 기준으로 각 AWS 람다 인스턴스는 Firecracker 마이크로 VM으로 구동되는 경량의 격리된 환경 내에서 실행된다.[2][3][4] 이러한 마이크로 VM은 AWS에서 개발한 맞춤형 리눅스 배포판인 Amazon Linux (Amazon Linux AMI 또는 Amazon Linux 2)를 기반으로 하는 런타임 환경으로 초기화된다. Firecracker는 하드웨어 가상화를 기반으로 하는 격리를 제공하여 최소한의 오버헤드로 거의 베어 메탈 수준의 성능을 달성하는 것을 목표로 한다. AWS는 기존 가상 머신과 달리 이러한 마이크로 VM이 수 밀리초 내에 시작되어 최소한의 메모리 공간으로 빠르고 안전한 함수 실행을 가능하게 한다고 주장한다. Amazon Linux AMI는 클라우드 네이티브 및 서버리스 워크로드를 위해 특별히 최적화되어 가볍고 안전하며 성능이 뛰어난 런타임 환경을 제공하는 것을 목표로 한다.[2][3][4]

2024년 12월 기준으로 AWS 람다는 Node.js, Python, Java, Go, .NET, Ruby 및 사용자 지정 런타임을 지원한다.[5]

3. 2. Amazon Linux

AWS 람다 인스턴스는 Firecracker 마이크로 VM으로 구동되는 격리된 환경에서 실행된다. 이 마이크로 VM은 Amazon Linux 기반 런타임 환경으로 초기화된다.[2][3][4] Firecracker는 하드웨어 가상화를 통해 격리를 제공하여 최소 오버헤드로 베어 메탈 수준의 성능을 달성한다.[2][3][4] AWS는 마이크로 VM이 수 밀리초 내에 시작되어 빠르고 안전한 함수 실행을 가능하게 한다고 주장한다.[2][3][4] Amazon Linux는 클라우드 네이티브 및 서버리스 워크로드에 최적화되어 가볍고 안전하며 성능이 뛰어난 런타임 환경을 제공한다.[2][3][4]

2024년 12월 기준으로 AWS 람다는 Node.js, Python, Java, Go, .NET, Ruby 및 사용자 지정 런타임을 지원한다.[5]

3. 3. 프로비저닝된 동시성

2019년, AWS 연례 클라우드 컴퓨팅 컨퍼런스(AWS re:Invent)에서 AWS 람다 팀은 "프로비저닝된 동시성"을 발표했다. 이 기능은 "함수를 초기화 상태로 유지하여 두 자릿수 밀리초 이내에 응답할 수 있도록 준비"한다. 람다 팀은 프로비저닝된 동시성을 "웹 및 모바일 백엔드, 지연 시간에 민감한 마이크로서비스, 또는 동기식 API와 같은 대화형 서비스를 구현하는 데 이상적"이라고 설명했다.

람다 함수 URL은 람다에 고유하고 영구적인 URL을 제공하며, 이는 인증된 사용자와 인증되지 않은 사용자 모두 접근할 수 있다.

3. 4. 람다 함수 URL

람다 함수 URL은 람다에 고유하고 영구적인 URL을 제공하며, 인증된 사용자와 인증되지 않은 사용자 모두 접근할 수 있다.[8] 2019년, AWS 연례 클라우드 컴퓨팅 컨퍼런스(AWS re:Invent)에서 AWS 람다 팀은 "프로비전된 동시성"을 발표했다. 이 기능은 "함수를 초기화 상태로 유지하여 두 자릿수 밀리초 이내에 응답할 수 있도록 준비"한다.[6] 람다 팀은 프로비전된 동시성을 "웹 및 모바일 백엔드, 지연 시간에 민감한 마이크로서비스, 또는 동기식 API와 같은 대화형 서비스를 구현하는 데 이상적"이라고 설명했다.[7]

4. 오류 처리

AWS 람다 목적지는 데드 레터 큐(DLQ)에 비해 향상된 오류 처리 및 라우팅 기능을 제공한다. DLQ는 수동 처리를 위해 실패한 비동기 호출만 캡처하는 반면, 람다 목적지는 동기 및 비동기 호출을 모두 지원한다. 람다 목적지를 사용하면 호출 결과(성공 또는 실패)에 따라 아마존 SQS, SNS, EventBridge 또는 다른 람다 함수와 같은 다양한 대상으로 라우팅할 수 있다. 또한 목적지는 요청 및 응답 페이로드와 같은 호출에 대한 자세한 컨텍스트 정보를 캡처하는 기능을 포함하여 보다 세분화된 모니터링 및 문제 해결을 지원한다. 이 기능을 통해 서버리스 애플리케이션에서 보다 동적이고 자동화된 오류 처리 워크플로를 용이하게 할 수 있다.

4. 1. Lambda Destinations

AWS 람다 목적지는 [데드 레터 큐](https://ko.wikipedia.org/wiki/데드_레터_큐) (DLQ)에 비해 향상된 오류 처리 및 라우팅 기능을 제공한다. DLQ는 수동 처리를 위해 실패한 비동기 호출만 캡처하는 반면, 람다 목적지는 동기 및 비동기 호출을 모두 지원한다. 람다 목적지를 사용하면 호출 결과(성공 또는 실패)에 따라 [아마존 SQS](https://ko.wikipedia.org/wiki/Amazon_SQS), [SNS](https://ko.wikipedia.org/wiki/Amazon_SNS), [EventBridge](https://ko.wikipedia.org/wiki/Amazon_EventBridge) 또는 다른 람다 함수와 같은 다양한 대상으로 라우팅할 수 있다. 또한 목적지는 요청 및 응답 페이로드와 같은 호출에 대한 자세한 컨텍스트 정보를 캡처하는 기능을 포함하여 보다 세분화된 모니터링 및 문제 해결을 지원한다. 이 기능을 통해 서버리스 애플리케이션에서 보다 동적이고 자동화된 오류 처리 워크플로를 용이하게 할 수 있다.

4. 2. Dead Letter Queues (DLQ)

AWS 람다 목적지는 [데드 레터 큐](https://ko.wikipedia.org/wiki/%EB%8D%B0%EB%93%9C_%EB%A0%88%ED%84%B0_%ED%81%90) (DLQ)에 비해 향상된 오류 처리 및 라우팅 기능을 제공한다. DLQ는 수동 처리를 위해 실패한 비동기 호출만 캡처하는 반면, 람다 목적지는 동기 및 비동기 호출을 모두 지원한다. 람다 목적지를 사용하면 호출 결과(성공 또는 실패)에 따라 [아마존 SQS](https://ko.wikipedia.org/wiki/Amazon_SQS), [SNS](https://ko.wikipedia.org/wiki/Amazon_SNS), [EventBridge](https://ko.wikipedia.org/wiki/Amazon_EventBridge) 또는 다른 람다 함수와 같은 다양한 대상으로 라우팅할 수 있다. 또한 목적지는 요청 및 응답 페이로드와 같은 호출에 대한 자세한 컨텍스트 정보를 캡처하는 기능을 포함하여 보다 세분화된 모니터링 및 문제 해결을 지원한다. 이 기능을 통해 서버리스 애플리케이션에서 보다 동적이고 자동화된 오류 처리 워크플로를 용이하게 할 수 있다.

5. Best practices (DevSecOps)

DevSecOps 방식을 따르면 최종 사용자가 람다 기반 애플리케이션을 보다 효과적으로 사용하고 보호하는 데 도움이 될 수 있다.[13] 람다 기반 애플리케이션에서는 인프라와 비즈니스 로직 사이의 경계가 모호해지고 앱은 일반적으로 다양한 서비스에 분산되어 있다. 얀 쿠이(Yan Cui)에 따르면, 테스트 노력의 가치를 최대한 얻기 위해 람다 기반 애플리케이션은 주로 통합 테스트를 해야 하며, 복잡한 비즈니스 로직이 있는 경우에만 단위 테스트를 사용해야 한다. 또한 람다 기반 애플리케이션의 디버깅 및 구현을 더 쉽게 만들기 위해 개발자는 오케스트레이션바운디드 컨텍스트 내에서 사용하고, 바운디드 컨텍스트 간에 코레오그래피를 사용해야 한다.[14]

5. 1. 테스트

DevSecOps 방식을 따르면 최종 사용자가 람다 기반 애플리케이션을 보다 효과적으로 사용하고 보호하는 데 도움이 될 수 있다.[13] 람다 기반 애플리케이션에서는 인프라와 비즈니스 로직 사이의 경계가 모호해지고 앱은 일반적으로 다양한 서비스에 분산되어 있다. 얀 쿠이(Yan Cui)에 따르면, 테스트 노력의 가치를 최대한 얻기 위해 람다 기반 애플리케이션은 주로 통합 테스트를 해야 하며, 복잡한 비즈니스 로직이 있는 경우에만 단위 테스트를 사용해야 한다. 또한 람다 기반 애플리케이션의 디버깅 및 구현을 더 쉽게 만들기 위해 개발자는 오케스트레이션바운디드 컨텍스트 내에서 사용하고, 바운디드 컨텍스트 간에 코레오그래피를 사용해야 한다.[14]

5. 2. 아키텍처 패턴

DevSecOps 방식을 따르면 최종 사용자가 람다 기반 애플리케이션을 보다 효과적으로 사용하고 보호하는 데 도움이 될 수 있다.[13] 람다 기반 애플리케이션에서 인프라와 비즈니스 로직 사이의 경계가 모호해지고 앱은 일반적으로 다양한 서비스에 분산되어 있다. 얀 쿠이(Yan Cui)에 따르면, 테스트 노력의 가치를 최대한 얻기 위해 람다 기반 애플리케이션은 주로 통합 테스트를 해야 하며, 복잡한 비즈니스 로직이 있는 경우에만 단위 테스트를 사용해야 한다. 또한 람다 기반 애플리케이션의 디버깅 및 구현을 더 쉽게 만들기 위해 개발자는 오케스트레이션바운디드 컨텍스트 내에서 사용하고, 바운디드 컨텍스트 간에 코레오그래피를 사용해야 한다.[14]

6. 이식성

AWS 람다에서 Amazon ECS와 같은 다른 AWS 컴퓨팅 서비스로 마이그레이션하는 것은 AWS 람다 API와의 긴밀한 통합으로 인해 어려움을 겪을 수 있으며, 이는 종종 서비스 종속성이라고 불린다. 이식성을 위한 방법으로, [https://github.com/awslabs/aws-lambda-web-adapter AWS 람다 웹 어댑터]와 같은 도구를 사용하면 개발자가 "람다리스" 또는 모놀리식 람다 디자인 패턴 하에서 익숙한 프레임워크를 사용하여 웹 애플리케이션을 구축할 수 있다. 그러나 이 접근 방식은 더 거친 세분성의 경고 및 접근 제어, 큰 종속성으로 인한 잠재적인 콜드 스타트 지연, 비 HTTP API에 대한 제한된 적합성을 포함한 제한 사항을 제시한다.

육각형 아키텍처와 같은 아키텍처 패턴을 채택하면 종속성을 추상화하고 컴퓨팅 플랫폼 간의 호환성을 용이하게 하여 이러한 문제를 완화할 수 있다. 핵심 비즈니스 로직을 인프라 관련 코드와 분리함으로써, 이 접근 방식은 HTTP 및 비 HTTP API를 모두 지원하여 서버리스 워크로드를 위한 더 이식 가능한 기반을 제공한다.

6. 1. 육각형 아키텍처

AWS 람다에서 Amazon ECS와 같은 다른 AWS 컴퓨팅 서비스로 마이그레이션하는 것은 AWS 람다 API와의 긴밀한 통합으로 인해 어려울 수 있으며, 이는 종종 서비스 종속성이라고 불린다. 이식성을 높이기 위해 [https://github.com/awslabs/aws-lambda-web-adapter AWS 람다 웹 어댑터]와 같은 도구를 사용하여 개발자가 익숙한 프레임워크를 통해 웹 애플리케이션을 구축할 수 있다. 그러나 이 방식은 세분화된 경고 및 접근 제어, 큰 종속성으로 인한 콜드 스타트 지연, 비 HTTP API에 대한 제한된 적합성 등의 한계가 있다.

육각형 아키텍처와 같은 아키텍처 패턴을 도입하면 종속성을 추상화하고 컴퓨팅 플랫폼 간 호환성을 높여 이러한 문제를 해결할 수 있다. 핵심 비즈니스 로직을 인프라 관련 코드와 분리하면 HTTP 및 비 HTTP API를 모두 지원하여 서버리스 워크로드를 위한 더 이식 가능한 기반을 제공한다.

6. 2. AWS 람다 웹 어댑터

AWS 람다에서 Amazon ECS와 같은 다른 AWS 컴퓨팅 서비스로 마이그레이션하는 것은 AWS 람다 API와의 긴밀한 통합으로 인해 어려움을 겪을 수 있으며, 이는 종종 서비스 종속성이라고 불린다. 이식성을 위한 방법으로, [https://github.com/awslabs/aws-lambda-web-adapter AWS 람다 웹 어댑터]와 같은 도구를 사용하면 개발자가 "람다리스" 또는 모놀리식 람다 디자인 패턴 하에서 익숙한 프레임워크를 사용하여 웹 애플리케이션을 구축할 수 있다. 그러나 이 접근 방식은 더 거친 세분성의 경고 및 접근 제어, 큰 종속성으로 인한 잠재적인 콜드 스타트 지연, 비 HTTP API에 대한 제한된 적합성을 포함한 제한 사항을 제시한다.

육각형 아키텍처와 같은 아키텍처 패턴을 채택하면 종속성을 추상화하고 컴퓨팅 플랫폼 간의 호환성을 용이하게 하여 이러한 문제를 완화할 수 있다. 핵심 비즈니스 로직을 인프라 관련 코드와 분리함으로써, 이 접근 방식은 HTTP 및 비 HTTP API를 모두 지원하여 서버리스 워크로드를 위한 더 이식 가능한 기반을 제공한다.

7. 테스팅

서비스 간의 통합 테스트는 분산되고 분할된 아키텍처를 가진 AWS 람다와 같은 서버리스 애플리케이션에서 특히 중요하다. LocalStack과 같은 시뮬레이터 도구는 테스트를 용이하게 할 수 있지만 실제 AWS 서비스와 다를 수 있으므로 거짓 양성을 생성할 수 있다.

이러한 제한 사항을 해결하기 위해 Yan Cui는 실제 AWS 서비스와 상호 작용하면서 애플리케이션 코드를 로컬에서 실행할 수 있는 "리모컬 테스트"를 도입했다. 이 접근 방식을 사용하면 배포 없이 실시간 디버깅 및 신속한 코드 수정을 할 수 있다. 그러나 AWS 리소스를 프로비저닝하고 그 이후에 해제해야 하므로 세심한 계획이 필요하다.

7. 1. LocalStack

서비스 간의 통합 테스트는 분산되고 분할된 아키텍처를 가진 AWS 람다와 같은 서버리스 애플리케이션에서 특히 중요하다. LocalStack과 같은 시뮬레이터 도구는 테스트를 용이하게 할 수 있지만 실제 AWS 서비스와 다를 수 있으므로 거짓 양성을 생성할 수 있다.

이러한 제한 사항을 해결하기 위해 Yan Cui는 실제 AWS 서비스와 상호 작용하면서 애플리케이션 코드를 로컬에서 실행할 수 있는 "리모컬 테스트"를 도입했다. 이 접근 방식을 사용하면 배포 없이 실시간 디버깅 및 신속한 코드 수정을 할 수 있다. 그러나 AWS 리소스를 프로비저닝하고 그 이후에 해제해야 하므로 세심한 계획이 필요하다.

7. 2. 리모컬 테스트

서비스 간의 통합 테스트는 분산되고 분할된 아키텍처를 가진 AWS 람다와 같은 서버리스 애플리케이션에서 특히 중요하다. LocalStack과 같은 시뮬레이터 도구는 테스트를 용이하게 할 수 있지만 실제 AWS 서비스와 다를 수 있으므로 거짓 양성을 생성할 수 있다.

이러한 제한 사항을 해결하기 위해 Yan Cui는 실제 AWS 서비스와 상호 작용하면서 애플리케이션 코드를 로컬에서 실행할 수 있는 "리모컬 테스트"를 도입했다. 이 접근 방식을 사용하면 배포 없이 실시간 디버깅 및 신속한 코드 수정을 할 수 있다. 그러나 AWS 리소스를 프로비저닝하고 그 이후에 해제해야 하므로 세심한 계획이 필요하다.

8. Helper Tools

Lambda Live Debugger(https://www.lldebugger.com/ Lambda Live Debugger)는 클라우드에 배포된 상태에서 컴퓨터에서 AWS 람다 함수를 디버깅하는 데 도움이 되는 오픈 소스 도구이다. AWS CDK v2, 서버리스 프레임워크 v3, AWS 서버리스 애플리케이션 모델(SAM) 및 테라폼을 지원한다.

9. 보안

2022년 4월, 연구원들은 "데노니아(Denonia)"라는 이름의 AWS 람다를 노리는 암호화폐 채굴 멀웨어를 발견했다.[19][20][21]

10. 요금

AWS 람다는 종량 과금제이며, 프로그램을 실행한 횟수와 시간, 람다 함수에 할당된 메모리 양에 따라 요금이 달라진다. 프로그램 실행 시간은 프로그램 실행 시작부터 처리 종료까지 1 밀리초 단위로 올림하여 계산된다.[26] 무기한 무료 이용 혜택이 제공되며, 한 달에 100만 번의 실행 횟수, 메모리 할당량에 따라 최대 320만 초의 실행 시간을 무료로 이용할 수 있다.[27]

10. 1. 무료 티어

AWS 람다는 종량 과금제이며, 프로그램을 실행한 횟수와 시간, 람다 함수에 할당된 메모리 양에 따라 요금이 달라진다. 프로그램 실행 시간은 프로그램 실행 시작부터 처리 종료까지 1 밀리초 단위로 올림하여 계산된다.[26] 무기한 무료 이용 혜택이 제공되며, 한 달에 100만 번의 실행 횟수, 메모리 할당량에 따라 최대 320만 초의 실행 시간을 무료로 이용할 수 있다.[27]

참조

[1] 서적 Serverless Development on AWS Building Enterprise-Scale Serverless Solutions O'Reilly Media
[2] 서적 Accelerating Server-Side Development with Fastify: A comprehensive guide to API development for building a scalable backend for your web apps
[3] 웹사이트 Firecracker – Lightweight Virtualization for Serverless Computing https://aws.amazon.c[...]
[4] 웹사이트 Secure and fast microVMs for serverless computing https://firecracker-[...]
[5] 웹사이트 Lambda runtimes https://docs.aws.ama[...]
[6] 웹사이트 New – Provisioned Concurrency for Lambda Functions https://aws.amazon.c[...] 2019-12-03
[7] 웹사이트 New – Provisioned Concurrency for Lambda Functions https://aws.amazon.c[...] 2019-12-03
[8] 웹사이트 Lambda function URLs - AWS Lambda https://docs.aws.ama[...] 2024-03-01
[9] 웹사이트 Managing Lambda dependencies with layers https://docs.aws.ama[...] 2024-02-02
[10] 서적 Serverless Architectures on AWS: With examples using AWS Lambda
[11] 서적 Data Engineering with AWS: Learn how to design and build cloud-based data transformation pipelines using AWS
[12] 서적 Programming AWS Lambda: Build and Deploy Serverless Applications with Java O'Reilly Media
[13] 서적 Learning Serverless: Design, Develop, and Deploy with Confidence O'Reilly Media
[14] 서적 Serverless Architectures on AWS Manning
[15] 웹사이트 AWS Lambda Web Adapter https://github.com/a[...] 2024-11-29
[16] 웹사이트 The Lambda monolith https://docs.aws.ama[...] 2024-11-29
[17] 서적 Serverless Applications with Node.js Using AWS Lambda and Claudia.js Manning
[18] 웹사이트 Lambda Live Debugger https://github.com/S[...] 2024-10-04
[19] 웹사이트 Archived copy https://www.cadosecu[...] 2024-11-04
[20] 웹사이트 Archived copy https://indianexpres[...] 2024-11-04
[21] 웹사이트 Archived copy https://therecord.me[...] 2024-11-04
[22] 웹사이트 サーバーレスでプログラムを実行できる「AWS Lambda」とは https://business.ntt[...] 東日本電信電話 2019-10-02
[23] 웹사이트 AWSの新サービスLambdaとECSは、何であり、何でないのか https://www.atmarkit[...] ITmedia 2014-11-17
[24] 웹사이트 AWS Lambda の特徴 https://aws.amazon.c[...] Amazon.com
[25] 웹사이트 Lambda@Edge https://aws.amazon.c[...] Amazon.com
[26] 웹사이트 New for AWS Lambda – 1ms Billing Granularity Adds Cost Savings https://aws.amazon.c[...] Amazon.com 2020-12-01
[27] 웹사이트 AWS Lambda 料金 https://aws.amazon.c[...] Amazon.com
[28] 웹인용 Amazon introduces Lambda, Containers at AWS re:Invent https://sdtimes.com/[...] 2014-11-14



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com